/***************************************************************************
 * File name: EPubDocumentImp.h
 * Original author: caizhifei2003@163.com
 * Date: 2013.03.01
 ***************************************************************************/
#ifndef _EPUB_DOCUMENT_IMP_H_
#define _EPUB_DOCUMENT_IMP_H_

#include "IEPubDocument.h"
#include "EPubBufferImp.h"
#include <map>
#include <string>

class EPubDocumentImp : public IEPubDocument
{
	typedef std::map<std::string, EPubPointer<EPubBufferImp>> EPubFileBufferList;
public:
	virtual EPUB_Result Load(const char *path);
	virtual EPUB_Result Save(const char *path) const;

	virtual const EPubPointer<IEPubBuffer> GetFileBuffer(const char *href) const;
	virtual const EPubPointer<IEPubBuffer> GetBasicFileBuffer(EPUB_BasicFileType basicFileType) const;

private:
	EPubFileBufferList		m_FileBufferList;
};

#endif // _EPUB_DOCUMENT_IMP_H_